package cn.gogoyc.system.mapper;

import cn.gogoyc.system.domain.Role;
import cn.gogoyc.org.basic.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 角色Mapper接口
 */
public interface RoleMapper extends BaseMapper<Role> {

    /**
     * 循环添加角色可管理的模块
     * @param id    the id
     * @param menus the menus
     */
    void addRoleMenus(@Param("id") Long id, @Param("menus") List<Long> menus);

    /**
     * 循环添加角色的权限功能
     * @param id          the id
     * @param permissions the permissions
     */
    void addRolePermissions(@Param("id") Long id, @Param("permissions") List<Long> permissions);

    /**
     * 根据角色id删除对应的菜单
     * @param id the id
     */
    void removeMenusByRoleId(Long id);

    /**
     * 根据角色id删除对应的权限功能
     * @param id the id
     */
    void removePermissionsByRoleId(Long id);

    /**
     * 根绝角色id删除对应的员工中间表信息
     * @param id the id
     */
    void removeEmployeeRoleByRoleId(Long id);
}
